<style>
    #febs-user xm-select {
        min-height: 30px;
        line-height: 30px;
    }
    #febs-user xm-select > .xm-label .scroll .label-content {
        display: flex;
        padding: 0 30px 0 10px;
    }
</style>
<div class="layui-fluid layui-anim febs-anim" id="plan-draft" lay-title="计划草稿管理">
    <div class="layui-row febs-container">
        <div class="layui-col-md12">
            <div class="layui-card">
                <div class="layui-card-body febs-table-full">
                    <form class="layui-form layui-table-form" lay-filter="plan-draft-table-form">
                        <div class="layui-row">
                            <div class="layui-col-md11">
                                <div class="layui-form-item">
                                    <div class="layui-inline">
                                        <label class="layui-form-label layui-form-label-sm">计划批次</label>
                                        <div class="layui-input-inline">
                                            <select name="batchId" id="trainingBatchList">
                                                <option value="">请选择</option>
                                            </select>
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label layui-form-label-sm">培训级别</label>
                                        <div class="layui-input-inline">
                                            <select name="trainningLevel" id="trainningLevelList">
                                                <option value="">请选择</option>
                                            </select>
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label layui-form-label-sm">培训类别</label>
                                        <div class="layui-input-inline">
                                            <select name="trainningType" id="trainningTypeList">
                                                <option value="">请选择</option>
                                            </select>
                                        </div>
                                    </div>

                                    <div class="layui-inline">
                                        <label class="layui-form-label layui-form-label-sm">培训名称</label>
                                        <div class="layui-input-inline">
                                            <input type="text" name="trainningTitle" autocomplete="off" class="layui-input" />
                                        </div>
                                    </div>

                                    <div class="layui-inline">
                                        <label class="layui-form-label layui-form-label-sm">组织部门</label>
                                        <div class="layui-input-inline" id="dept">
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label layui-form-label-sm">计划月份</label>
                                        <div class="layui-input-inline">
                                            <select name="planDate">
                                                <option value="">请选择</option>
                                                //这里传的日期仅仅是为了后台匹配给日期类型 提取月份
                                                <option value="2021/01/01" >1月</option>
                                                <option value="2021/02/01" >2月</option>
                                                <option value="2021/03/01" >3月</option>
                                                <option value="2021/04/01" >4月</option>
                                                <option value="2021/05/01" >5月</option>
                                                <option value="2021/06/01" >6月</option>
                                                <option value="2021/07/01" >7月</option>
                                                <option value="2021/08/01" >8月</option>
                                                <option value="2021/09/01" >9月</option>
                                                <option value="2021/10/01" >10月</option>
                                                <option value="2021/11/01" >11月</option>
                                                <option value="2021/12/01" >12月</option>
                                            </select>
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label layui-form-label-sm">讲师姓名</label>
<!--                                        <div class="layui-input-inline">-->
<!--                                            <select name="teacherInfo" id="teacherInfo">-->
<!--                                                <option value="">请选择</option>-->
<!--                                                <option value="01">请选择2</option>-->
<!--                                            </select>-->
<!--                                        </div>-->
                                        <div class="layui-input-inline" list="teachInfoList">
                                            <input type="text" name="teacherInfo" list="teachInfoList"  autocomplete="off" class="layui-input"   >
                                            <datalist id="teachInfoList">
                                                <!-- <option></option> -->
                                            </datalist>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-md1 layui-col-sm12 layui-col-xs12 table-action-area">
                                <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query">
                                    <i class="layui-icon">&#xe848;</i>
                                </div>
                                <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset">
                                    <i class="layui-icon">&#xe79b;</i>
                                </div>
                            </div>
                        </div>
                    </form>
                    <table lay-filter="hr-plan-draft-table" lay-data="{id: 'hr-plan-draft-table'}"></table>
                </div>
            </div>
        </div>
    </div>
</div>
<!--列表头部工具栏-->
<script type="text/html" id="hr-plan-draft-toolbar">
    <div class="layui-row">
        <!-- 注意id属性，用于绑定JS事件-->
        <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="hr-plan-draft-add-btn">
            <i class="layui-icon layui-icon-plus-circle"></i>新增
        </button>
        <!--    id用与js绑定    -->
        <button type="button" class="layui-btn  layui-btn-sm layui-btn-primary febs-button-blue-plain"
                id="hr-plan-draft-downloadModel-btn">
            <i class="layui-icon" >&#xe82a;</i> 下载模板
        </button>
        <!--    id用与js绑定    -->
        <button type="button" class="layui-btn  layui-btn-sm layui-btn-success" id="hr-plan-draft-import-btn">
            <i class="layui-icon" >&#xe7a8;</i> 导入
        </button>
        <!--    id用与js绑定    -->
        <button type="button" class="layui-btn  layui-btn-sm layui-btn-primary febs-button-green-plain" style="margin-left: 10px"
                id="hr-plan-draft-export-btn">
            <i class="layui-icon" >&#xe7aa;</i> 导出
        </button>
    </div>
</script>

<!-- 列表右侧操作栏 -->
<!-- 注意id属性，列表初始化的时候加载本列表右侧工具栏-->
<script type="text/html" id="hr-plan-draft-option">
    <a lay-event="detail"><i class="layui-icon febs-edit-area febs-green" title="详情">&#xe7a5;</i></a>
    <!-- 注意lay-event属性，用于绑定JS事件-->
    <a lay-event="edit"><i class="layui-icon febs-edit-area febs-blue" title="编辑">&#xe7a4;</i></a>
    <!-- 注意lay-event属性，用于绑定JS事件-->
    <a lay-event="del"><i class="layui-icon febs-edit-area febs-red" title="删除">&#xe7f9;</i></a>
</script>

<script data-th-inline="none" type="text/javascript">
    layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs', 'xmSelect'], function () {
        let $ = layui.jquery,
            laydate = layui.laydate,
            febs = layui.febs,
            form = layui.form,
            table = layui.table,
            dropdown = layui.dropdown,
            $view = $('#plan-draft'),
            $query = $view.find('#query'),
            $reset = $view.find('#reset'),
            $searchForm = $view.find('form'),
            sortObject = {field: 'createTime', type: null},
            tableIns,
            createTimeFrom,
            createTimeTo,
            deptXmlSelect;

        form.render();

        initTable();



        // 新增按钮点击事件
        $view.on('click', '#hr-plan-draft-add-btn', function () {
            // 打开新增模态窗体
            febs.modal.open('新增', 'trainningPlanDraft/add', {
                // 模态窗体显示按钮（模态窗体显示的按钮是此处定义的按钮，具体模态窗体中定义的按钮为隐藏按钮，为了绑定在模态窗体需要执行的事件）
                btn: ['提交', '重置'],
                area: $(window).width() <= 750 ? '95%' : '50%',
                // 点击模态窗体的提交按钮，优先执行父窗体的此处代码。
                yes: function (index, layero) {
                    // 获得模态窗体的相关信息
                    let name = $('#hr-draft-add').find('#hr-draft-add-name').val();
                    // 异步查询是否重名
                    $.ajax({
                        type:'get',
                        url:'draftPlan/isRepetitive',
                        data:{"name":name},
                        success:function(res){
                            if(res){
                                // 如果没有重名，激发模态窗体的提交按钮（模态窗体的按钮是隐藏的只是为了绑定事件）
                                // 执行模态窗体的点击事件代码
                                $('#hr-draft-add').find('#hr-draft-add-submit-btn').trigger('click');
                            }else{
                                // 显示错误信息
                                febs.alert.error("输入的计划名称重复，请检查");
                            }
                        }
                    })
                },
                // 激发模态窗体重置按钮事件
                btn2: function () {
                    $('#hr-draft-add').find('#hr-draft-add-reset-btn').trigger('click');
                    return false;
                }
            });
        })

        //导出数据
        // 与列表顶部操作栏导出id绑定
        $view.on('click', '#hr-plan-draft-export-btn', function () {
            // 传入后台的参数
            let params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type});
            params.pageSize = $view.find(".layui-laypage-limits option:selected").val();
            params.pageNum = $view.find(".layui-laypage-em").next().html();
            //拼接时间
            var add='';
            var t=new Date();
            var year=t.getFullYear();
            var month=t.getMonth()+1;
            var day=t.getDate();
            var hours=t.getHours();
            var minutes=t.getMinutes();
            var seconds=t.getSeconds();
            add=year+formatZero(month)+formatZero(day)+"_"+formatZero(hours)+formatZero(minutes)+formatZero(seconds)+".xlsx";
            // 访问路由
            febs.download(ctx + 'draftPlan/excel', params, '233用户'+add);
        });


        //组织部门 下拉框树型结构
        deptXmlSelect = xmSelect.render({
            el: '#dept',
            model: {label: {type: 'text'}},
            tree: {
                show: true,
                strict: false,
                showLine: false,
                clickCheck: true,
                expandedKeys: [-1],
            },
            name: 'deptId',
            theme: {
                color: '#52c41a',
            },
            prop: {
                value: 'id'
            },
            height: 'auto',
            on: function(data){
                if(data.isAdd){
                    return data.change.slice(0, 1)
                }
            }
        });


        febs.get(ctx + 'hrDeptController/select/tree', null, function (data) {
            deptXmlSelect.update(data)
        });

        // 查询按钮点击事件
        $query.on('click', function () {
            // 获得页面检索条件
            let params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type});
            // 重新加载列表
            tableIns.reload({where: params, page: {curr: 1}});
        });
        // 在个位数的时间前加0
        function formatZero(n){
            if(n >= 0 && n <= 9){
                return "0"+n;
            }else{
                return n;
            }
        }
        //给计划批次下拉框赋值
        febs.get(ctx + 'trainningBatch/list', null, function (data) {
            $.each(data.data.rows,function (index,value) {
                //对应映射字段名 第一个为显示的值  第二个为value值
                $("#trainingBatchList").append(new Option(value.trainningName,value.id))
            });
            layui.form.render("select")//重新渲染 固定写法

        })
        //给讲师的 datalist 赋值
        febs.get(ctx + 'user/list', null, function (data) {
            console.log(data.data)
            $.each(data.data.rows,function (index,value) {
                //对应映射字段名 第一个为显示的值  第二个为value值
                $("#teachInfoList").append(new Option(value.username,value.username));
            });
            // layui.form.render("select")//重新渲染 固定写法
        })
        //给计划培训等级下拉框赋值
        febs.get(ctx + 'HRDictionary/list?hrdictionaryType=TRAINNING_LEVEL', null, function (data) {
            $.each(data.data,function (index,value) {
                //对应映射字段名 第一个为显示的值  第二个为value值
                $("#trainningLevelList").append(new Option(value.detail,value.id))
            });
            layui.form.render("select")//重新渲染 固定写法

        })



        //给计划培训类型下拉框赋值
        febs.get(ctx + 'HRDictionary/list?hrdictionaryType=TRAINNING_TYPE', null, function (data) {
            $.each(data.data,function (index,value) {
                //对应映射字段名 第一个为显示的值  第二个为value值
                $("#trainningTypeList").append(new Option(value.detail,value.id))
            });
            layui.form.render("select")//重新渲染 固定写法

        })
        table.on('tool(hr-plan-draft-table)', function (obj) {
            let data = obj.data,
                layEvent = obj.event;
            // if (layEvent === 'detail') {
            //     febs.modal.view('草稿计划详情', '待定' + data.username, {
            //         area: $(window).width() <= 750 ? '95%' : '660px'
            //     });
            // }
            if (layEvent === 'del') {
                febs.modal.confirm('删除该草稿计划', '确定删除该草稿吗？' , function () {
                    deleteDraftPlan(data.id);
                });
            }
            if (layEvent === 'edit') {
                febs.modal.open('修改该草稿计划', 'trainningPlanDraft/Update/' + data.id, {
                    area: $(window).width() <= 750 ? '90%' : '50%',
                    btn: ['提交', '取消'],
                    yes: function (index, layero) {
                        $('#hr-draft-update').find('#hr-draft-update-submit-btn').trigger('click');
                    },
                    btn2: function () {
                        layer.closeAll();
                    }
                });
            }
        });
        function createFormat(o){
            console.log(o)
            return o;
        }
        // 初始化数据表格
        function initTable() {

            tableIns = febs.table.init({
                // 当前视图的table
                elem: $view.find('table'),
                // 列表ID
                id: 'hr-plan-draft-table',
                // 访问路由
                url: ctx + 'draftPlan/list',
                // 配置列表顶部工具栏
                toolbar: '#hr-plan-draft-toolbar',
                // 配置列表顶部右侧显示列过滤项
                defaultToolbar: ['filter'],
                // 表格渲染完毕后的回调
                done: function (res, curr, count) {
                    // 调整表格在页面占比
                    $("table").css("width", "100%");
                },
                width: "100%",
                // field属性为返回实体类中相关属性名，title为表格列头显示内容，minWidth为表格列最小宽度，maxWidth为表格列最大宽度
                cols: [[
                    {field: 'trainningLevelName', title: '等级类型', minWidth: 100},
                    {field: 'trainningTypeName', title: '培训类型', minWidth: 100},
                    {field: 'trainningTitle', title: '培训名称', minWidth: 100},
                    {field: 'organizationDeptNameList', title: '组织部门', minWidth: 150},
                    {field: 'participantsTitle', title: '参训人员', minWidth: 150},
                    {field: 'teacherInfo', title: '讲师', minWidth: 100},
                    {field: 'innerOrOutterName', title: '培训方式', minWidth: 100},
                    {field: 'planDates', title: '培训时间（月）', minWidth: 150,
                        templet:function (res) {
                            let arr = new Array();
                            for (let i = 0; i < res.planDates.length; i++) {
                               let month =  new Date(res.planDates[i].planDate).getMonth() + 1;
                                arr[i] = month;
                            }
                            arr.sort(function(a,b){return a-b});
                            let months = arr.join(",")
                            return months;
                        }
                    },


                    // 设置列表右侧操作栏college-option为上方所配置工具栏ID
                    {title: '操作', minWidth: 150, toolbar: '#hr-plan-draft-option'}

                ]]
            });
        }


        // 获得form表单中查询条件并格式化为JSON格式
        function getQueryParams(flag) {
            let params = $searchForm.serializeJson();
            console.log(params+"---------------")
            return params;
        }


        $query.on('click', function () {
            let params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type});
            tableIns.reload({where: params, page: {curr: 1}});
        });

        $reset.on('click', function () {
            $searchForm[0].reset();
            sortObject.type = 'null';
            deptXmlSelect.setValue(['']);
            createTimeTo = null;
            createTimeFrom = null;
            tableIns.reload({where: getQueryParams(true), page: {curr: 1}, initSort: sortObject});
        });


        function getQueryParams(flag) {
            deptId = deptXmlSelect.getValue('valueStr');
            if (flag) {
                deptId = '';
            }
            let params = $searchForm.serializeJson();
            params.deptId = deptId;
            return params;
        }

        function deleteDraftPlan(draftPlanId) {
            febs.get(ctx + 'draftPlan/delete/' + draftPlanId, null, function () {
                // 提示成功信息
                febs.alert.success('删除草稿成功');
                // 点击查询按钮
                $query.click();
            });
        }
    })
</script>